using System;
using System.Collections.Generic;
using System.Text;
using Tibia.Addresses;

namespace Tibia
{
    public class Version
    {
        public static ushort CurrentVersion = 862;
        public static string CurrentVersionString = "8.62";

        public static string VersionToString(ushort version)
        {
            int main = version / 100;
            int secondary = version - main * 100;
            return String.Format("{0}.{1:00}", main, secondary);
        }

        public static ushort StringToVersion(string versionString)
        {
            string[] split = versionString.Split('.');
            int main = int.Parse(split[0]);
            int secondary = int.Parse(split[1]);
            return (ushort)(main * 100 + secondary);
        }

        public static void Set(string version)
        {
            CurrentVersion = StringToVersion(version);
            CurrentVersionString = version;
            switch (version)
            {
                #region 8.62 Addresses

                case "8.62":
                    BattleList.Start = 0x637CE0;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x8034E8;
                    Client.XTeaKey = 0x7BC6E4;
                    Client.SocketStruct = 0x7BC6B8;
                    Client.RecvPointer = 0x5B25E4;
                    Client.SendPointer = 0x5B2610;
                    Client.FrameRatePointer = 0x7C07CC;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x5079B4;
                    Client.Status = 0x7BFC84;
                    Client.SafeMode = 0x7BCB0C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x7BFCE4;
                    Client.ActionStateFreezer = 0x518F90;
                    Client.LastMSGText = 0x789CF8;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x803508;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x7BFD24;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x7BFD30;
                    //Client.ClickContextMenuItemGroundId = ?
                    Client.ClickContextMenuCreatureId = 0x7BFD34;
                    Client.LoginServerStart = 0x7B7620;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B2980;
                    Client.LoginCharList = 0x7BFC38;
                    Client.LoginCharListLength = 0x7BFC3C;
                    Client.LoginSelectedChar = 0x7BFC34;
                    Client.GameWindowRectPointer = 0x66F080;
                    Client.GameWindowBar = 0x8034F8;
                    Client.DatPointer = 0x7BC704;
                    Client.EventTriggerPointer = 0x51AA90;
                    Client.DialogPointer = 0x6723EC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x7B7E98;
                    Client.DecryptCall = 0x45A775;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x7BFC40;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45A740;
                    Client.GetNextPacketCall = 0x45A775;
                    Client.RecvStream = 0x7BC6D4;

                    Container.Start = 0x66FB38;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x450C90;
                    ContextMenus.OnClickContextMenuPtr = 0x44D870;
                    ContextMenus.OnClickContextMenuVf = 0x5B7878;
                    ContextMenus.AddSetOutfitContextMenu = 0x451BAC;
                    ContextMenus.AddPartyActionContextMenu = 0x451AD4;
                    ContextMenus.AddCopyNameContextMenu = 0x451C14;
                    ContextMenus.AddTradeWithContextMenu = 0x451839;
                    ContextMenus.AddLookContextMenu = 0x4516EF;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    DrawItem.DrawItemFunc = 0x4B1B30;

                    DrawSkin.DrawSkinFunc = 0x4B57A0;

                    Hotkey.SendAutomaticallyStart = 0x7BCD08;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x7BCD30;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x7BCC78;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x7BCB58;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x676F40;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4EE519;
                    Map.NameSpy2 = 0x4EE523;
                    Map.NameSpy1Default = 0x4C75;
                    Map.NameSpy2Default = 0x4275;
                    Map.LevelSpy1 = 0x4F038A;
                    Map.LevelSpy2 = 0x4F048F;
                    Map.LevelSpy3 = 0x4F0510;
                    Map.LevelSpyPtr = 0x66F080;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x5BC0;
                    Map.FullLightNop = 0x4E6C29;
                    Map.FullLightAdr = 0x4E6C2C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x637C4C;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x637BFC;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x66FAC0;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x637C60;
                    Player.TilesToGo = 0x637C64;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x637C24;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x672428;
                    Player.AttackCount = 0x635800;
                    Player.FollowCount = Player.AttackCount + 0x20;

                    TextDisplay.PrintName = 0x4F14F3;
                    TextDisplay.PrintFPS = 0x458778;
                    TextDisplay.ShowFPS = 0x6358FC;
                    TextDisplay.PrintTextFunc = 0x4B0F70;
                    TextDisplay.NopFPS = 0x4586B4;

                    Vip.Start = 0x635978;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.61 Addresses

                case "8.61":
                    BattleList.Start = 0x634C38;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x7D5320;
                    Client.XTeaKey = 0x78E51C;
                    Client.SocketStruct = 0x78E4F0;
                    Client.RecvPointer = 0x5B05E4;
                    Client.SendPointer = 0x5B0610;
                    Client.FrameRatePointer = 0x792604;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x506BF4;
                    Client.Status = 0x791ABC;
                    Client.SafeMode = 0x78E944;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x791B1C;
                    Client.ActionStateFreezer = 0x518140;
                    Client.LastMSGText = 0x789CF8;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7D5340;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x791B5C;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x791B68;
                    //Client.ClickContextMenuItemGroundId = ?
                    Client.ClickContextMenuCreatureId = 0x791B6C;
                    Client.LoginServerStart = 0x789458;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B0980;
                    Client.LoginCharList = 0x791A70;
                    Client.LoginCharListLength = 0x791A74;
                    Client.LoginSelectedChar = 0x791A6C;
                    Client.GameWindowRectPointer = 0x640EBC;
                    Client.GameWindowBar = 0x7D5330;
                    Client.DatPointer = 0x78E53C;
                    Client.EventTriggerPointer = 0x519C50;
                    Client.DialogPointer = 0x644224;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x789CD0;
                    Client.DecryptCall = 0x459C25;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x791A78;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x459BF0;
                    Client.GetNextPacketCall = 0x459C25;
                    Client.RecvStream = 0x78E50C;

                    Container.Start = 0x641970;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x450140;
                    ContextMenus.OnClickContextMenuPtr = 0x44CD60;
                    ContextMenus.OnClickContextMenuVf = 0x5B5668;
                    ContextMenus.AddSetOutfitContextMenu = 0x45105C;
                    ContextMenus.AddPartyActionContextMenu = 0x451489;
                    ContextMenus.AddCopyNameContextMenu = 0x45152D;
                    ContextMenus.AddTradeWithContextMenu = 0x450CE9;
                    ContextMenus.AddLookContextMenu = 0x450B9F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    DrawItem.DrawItemFunc = 0x4B0E70;

                    DrawSkin.DrawSkinFunc = 0x4B4AC0;

                    Hotkey.SendAutomaticallyStart = 0x78EB40;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78EB68;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78EAB0;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78E990;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x648D78;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ED739;
                    Map.NameSpy2 = 0x4ED743;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EF5EA;
                    Map.LevelSpy2 = 0x4EF6EF;
                    Map.LevelSpy3 = 0x4EF770;
                    Map.LevelSpyPtr = 0x640EBC;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.FullLightNop = 0x4E5ED9;
                    Map.FullLightAdr = 0x4E5EDC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x634BCC;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x634B64;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x6418F8;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x634BE0;
                    Player.TilesToGo = 0x634BE4;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x634BA4;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x644260;
                    Player.AttackCount = 0x632780;
                    Player.FollowCount = Player.AttackCount + 0x20;

                    TextDisplay.PrintName = 0x4F0753;
                    TextDisplay.PrintFPS = 0x457C28;
                    TextDisplay.ShowFPS = 0x63287C;
                    TextDisplay.PrintTextFunc = 0x4B02B0;
                    TextDisplay.NopFPS = 0x457B64;

                    Vip.Start = 0x6328F8;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.60 Addresses

                case "8.60":
                    BattleList.Start = 0x63FEF8;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x7E0790;
                    Client.XTeaKey = 0x7998BC;
                    Client.SocketStruct = 0x799890;
                    Client.RecvPointer = 0x5B85E4;
                    Client.SendPointer = 0x5B8610;
                    Client.FrameRatePointer = 0x79DA74;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x50BCA4;
                    Client.Status = 0x79CF28;
                    Client.SafeMode = 0x799CE4;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x79CF88;
                    Client.ActionStateFreezer = 0x51D200;
                    Client.LastMSGText = 0x7E0A00;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7E07B0;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x79CFC8;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x79CFD4;
                    //Client.ClickContextMenuItemGroundId = ?
                    Client.ClickContextMenuCreatureId = 0x79CFD8;
                    Client.LoginServerStart = 0x7947F8;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B8980;
                    Client.LoginCharList = 0x79CEDC;
                    Client.LoginCharListLength = 0x79CEE0;
                    Client.LoginSelectedChar = 0x79CED8;
                    Client.GameWindowRectPointer = 0x64C25C;
                    Client.GameWindowBar = 0x7E07A4;
                    Client.DatPointer = 0x7998DC;
                    Client.EventTriggerPointer = 0x51F650;
                    Client.DialogPointer = 0x64F5C4;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x795070;
                    Client.DecryptCall = 0x45C3A5;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x79CEE4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45C370;
                    Client.GetNextPacketCall = 0x45C3A5;
                    Client.RecvStream = 0x7998AC;

                    Container.Start = 0x64CD10;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x452320;
                    ContextMenus.OnClickContextMenuPtr = 0x44E960;
                    ContextMenus.OnClickContextMenuVf = 0x5BD9C0;
                    ContextMenus.AddSetOutfitContextMenu = 0x453283;
                    ContextMenus.AddPartyActionContextMenu = 0x4536AC;
                    ContextMenus.AddCopyNameContextMenu = 0x453790;
                    ContextMenus.AddTradeWithContextMenu = 0x452EC9;
                    ContextMenus.AddLookContextMenu = 0x452D7F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    DrawItem.DrawItemFunc = 0x4B5990;

                    DrawSkin.DrawSkinFunc = 0x4B96E0;

                    Hotkey.SendAutomaticallyStart = 0x799EE0;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x799F08;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x799E50;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x799D30;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x654118;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4F2809;
                    Map.NameSpy2 = 0x4F2813;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4F46BA;
                    Map.LevelSpy2 = 0x4F47BF;
                    Map.LevelSpy3 = 0x4F4840;
                    Map.LevelSpyPtr = 0x64C25C;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.FullLightNop = 0x4EAFA9;
                    Map.FullLightAdr = 0x4EAFAC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x63FE8C;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x63FE24;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x64CC98;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x63FEA0;
                    Player.TilesToGo = 0x63FEA4;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x63FE64;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x64F600;
                    Player.AttackCount = 0x63DA40;
                    Player.FollowCount = Player.AttackCount + 0x20;

                    TextDisplay.PrintName = 0x4F5823;
                    TextDisplay.PrintFPS = 0x45A258;
                    TextDisplay.ShowFPS = 0x63DB3C;
                    TextDisplay.PrintTextFunc = 0x4B4DD0;
                    TextDisplay.NopFPS = 0x45A194;

                    Vip.Start = 0x63DBB8;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.57 Addresses

                case "8.57":
                    BattleList.Start = 0x63FEF0;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x7E0788;
                    Client.XTeaKey = 0x7998B4;
                    Client.SocketStruct = 0x799888;
                    Client.RecvPointer = 0x5B85E4;
                    Client.SendPointer = 0x5B8610;
                    Client.FrameRatePointer = 0x79DA6C;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x50BB24;
                    Client.Status = 0x79CF20;
                    Client.SafeMode = 0x799CDC;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x79CF80;
                    Client.ActionStateFreezer = 0x51D074;
                    Client.LastMSGText = 0x7E094F8;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7E07A8;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x79CFC0;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x79CFCC;
                    //Client.ClickContextMenuItemGroundId = ?
                    Client.ClickContextMenuCreatureId = 0x79CFD0;
                    Client.LoginServerStart = 0x7947F0;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B8980;
                    Client.LoginCharList = 0x79CED4;
                    Client.LoginCharListLength = 0x79CED8;
                    Client.LoginSelectedChar = 0x79CED0;
                    Client.GameWindowRectPointer = 0x64C254;
                    Client.GameWindowBar = 0x7E079C;
                    Client.DatPointer = 0x7998D4;
                    Client.EventTriggerPointer = 0x51F4D0;
                    Client.DialogPointer = 0x64F5BC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x795068;
                    Client.DecryptCall = 0x45C345;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x79CEDC;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45C310;
                    Client.GetNextPacketCall = 0x45C345;
                    Client.RecvStream = 0x7998A4;

                    Container.Start = 0x64CD08;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x4522E0;
                    ContextMenus.OnClickContextMenuPtr = 0x44E910;
                    ContextMenus.OnClickContextMenuVf = 0x5BD9C0;
                    ContextMenus.AddSetOutfitContextMenu = 0x453243;
                    ContextMenus.AddPartyActionContextMenu = 0x45366C;
                    ContextMenus.AddCopyNameContextMenu = 0x453750;
                    ContextMenus.AddTradeWithContextMenu = 0x452E89;
                    ContextMenus.AddLookContextMenu = 0x452D3F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B5770;

                    DrawSkin.DrawSkinFunc = 0x4B9560;

                    Hotkey.SendAutomaticallyStart = 0x799ED8;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x799F00;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x799E48;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x799D28;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x654110;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4F2689;
                    Map.NameSpy2 = 0x4F2693;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4F453A;
                    Map.LevelSpy2 = 0x4F463F;
                    Map.LevelSpy3 = 0x4F46C0;
                    Map.LevelSpyPtr = 0x64C254;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.FullLightNop = 0x4EAE29;
                    Map.FullLightAdr = 0x4EAE2C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x63FE84;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x63FE1C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x64CC90;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x63FE98;
                    Player.TilesToGo = 0x63FE9C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x63FE5C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x64F5F8;

                    TextDisplay.PrintName = 0x4F56A3;
                    TextDisplay.PrintFPS = 0x45A1F8;
                    TextDisplay.ShowFPS = 0x63DB34;
                    TextDisplay.PrintTextFunc = 0x4B4BB0;
                    TextDisplay.NopFPS = 0x45A134;

                    Vip.Start = 0x63DBB0;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.55 Addresses

                case "8.55":
                    BattleList.Start = 0x63D350;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x7DDCB8;
                    Client.XTeaKey = 0x796DE4;
                    Client.SocketStruct = 0x796DB8;
                    Client.RecvPointer = 0x5B75DC;
                    Client.SendPointer = 0x5B7608;
                    Client.FrameRatePointer = 0x79AF9C;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x50B874;
                    Client.Status = 0x79A450;
                    Client.SafeMode = 0x79720C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x79A4B0;
                    Client.ActionStateFreezer = 0x51CBB4;
                    Client.LastMSGText = 0x7DDF28;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7DDCD8;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x79A4F0;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x79A4FC;
                    Client.ClickContextMenuItemGroundId = 0x79A500;
                    Client.ClickContextMenuCreatureId = 0x79A4F8;
                    Client.LoginServerStart = 0x791D20;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B7610;
                    Client.LoginCharList = 0x79A404;
                    Client.LoginCharListLength = 0x79A408;
                    Client.LoginSelectedChar = 0x79A400;
                    Client.GameWindowRectPointer = 0x649784;
                    Client.GameWindowBar = 0x7DDCCC;
                    Client.DatPointer = 0x796E04;
                    Client.EventTriggerPointer = 0x51EC50;
                    Client.DialogPointer = 0x64CAEC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x792598;
                    Client.DecryptCall = 0x45C1B5;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x79A40C;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45C180;
                    Client.GetNextPacketCall = 0x45C1B5;
                    Client.RecvStream = 0x796DD4;

                    Container.Start = 0x64A238;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x4520F0;
                    ContextMenus.OnClickContextMenuPtr = 0x44E700;
                    ContextMenus.OnClickContextMenuVf = 0x5BCBD0;
                    ContextMenus.AddSetOutfitContextMenu = 0x453022;
                    ContextMenus.AddPartyActionContextMenu = 0x45349C;
                    ContextMenus.AddCopyNameContextMenu = 0x45354D;
                    ContextMenus.AddTradeWithContextMenu = 0x452C99;
                    ContextMenus.AddLookContextMenu = 0x452B4F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B4CF0;

                    DrawSkin.DrawSkinFunc = 0x4B8BE0;

                    Hotkey.SendAutomaticallyStart = 0x797408;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x797430;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x797378;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x797258;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x651640;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4F2119;
                    Map.NameSpy2 = 0x4F2123;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4F3FCA;
                    Map.LevelSpy2 = 0x4F40CF;
                    Map.LevelSpy3 = 0x4F4150;
                    Map.LevelSpyPtr = 0x649784;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.FullLightNop = 0x4EA8B9;
                    Map.FullLightAdr = 0x4EA8BC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x63D2E4;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x63D27C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x64A1C0;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x63D2F8;
                    Player.TilesToGo = 0x63D2FC;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x63D2BC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x64CB28;

                    TextDisplay.PrintName = 0x4F5133;
                    TextDisplay.PrintFPS = 0x45A058;
                    TextDisplay.ShowFPS = 0x63AF94;
                    TextDisplay.PrintTextFunc = 0x4B4130;
                    TextDisplay.NopFPS = 0x459F94;

                    Vip.Start = 0x63B010;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.54 Addresses

                case "8.54":
                    BattleList.Start = 0x635F70;
                    BattleList.StepCreatures = 0xA8;
                    BattleList.MaxCreatures = 250;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x7D66B8;
                    Client.XTeaKey = 0x78F7EC;
                    Client.SocketStruct = 0x78F7C0;
                    Client.RecvPointer = 0x5B25DC;
                    Client.SendPointer = 0x5B2608;
                    Client.FrameRatePointer = 0x79399C;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x5070B4;
                    Client.Status = 0x792E50;
                    Client.SafeMode = 0x78FC14;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x792EB0;
                    Client.ActionStateFreezer = 0x5182A4;
                    Client.LastMSGText = 0x7D6928;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7D66D8;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x792EF0;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x792EFC;
                    Client.ClickContextMenuItemGroundId = 0x792F00;
                    Client.ClickContextMenuCreatureId = 0x792EF8;
                    Client.LoginServerStart = 0x78A728;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B2610;
                    Client.LoginCharList = 0x792E04;
                    Client.LoginCharListLength = 0x792E08;
                    Client.LoginSelectedChar = 0x792E00;
                    Client.GameWindowRectPointer = 0x64218C;
                    Client.GameWindowBar = 0x7D66CC;
                    Client.DatPointer = 0x78F80C;
                    Client.EventTriggerPointer = 0x51A210;
                    Client.DialogPointer = 0x6454F4;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x78AFA0;
                    Client.DecryptCall = 0x45BBE5;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x792E0C;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45BBB0;
                    Client.GetNextPacketCall = 0x45BBE5;
                    Client.RecvStream = 0x78F7DC;

                    Container.Start = 0x642C40;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x451BB0;
                    ContextMenus.OnClickContextMenuPtr = 0x44E350;
                    ContextMenus.OnClickContextMenuVf = 0x5B77F0;
                    ContextMenus.AddSetOutfitContextMenu = 0x452AE2;
                    ContextMenus.AddPartyActionContextMenu = 0x452981;
                    ContextMenus.AddCopyNameContextMenu = 0x452B4A;
                    ContextMenus.AddTradeWithContextMenu = 0x452759;
                    ContextMenus.AddLookContextMenu = 0x45260F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceIsBlocking = 164;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B1110;

                    DrawSkin.DrawSkinFunc = 0x4B4DA0;

                    Hotkey.SendAutomaticallyStart = 0x78FE10;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78FE38;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78FD80;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78FC60;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x64A048;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ED979;
                    Map.NameSpy2 = 0x4ED983;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EF82A;
                    Map.LevelSpy2 = 0x4EF92F;
                    Map.LevelSpy3 = 0x4EF9B0;
                    Map.LevelSpyPtr = 0x64218C;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.FullLightNop = 0x4E6119;
                    Map.FullLightAdr = 0x4E611C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x635F04;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x635E9C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x642BC8;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x635F18;
                    Player.TilesToGo = 0x635F1C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x635EDC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x645530;

                    TextDisplay.PrintName = 0x4F0993;
                    TextDisplay.PrintFPS = 0x459AC8;
                    TextDisplay.ShowFPS = 0x633BB4;
                    TextDisplay.PrintTextFunc = 0x4B0550;
                    TextDisplay.NopFPS = 0x459A04;

                    Vip.Start = 0x633C30;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.53 Addresses

                case "8.53":
                    BattleList.Start = 0x635F70;
                    BattleList.End = 0x635F70 + 0xA4 * 250;
                    BattleList.StepCreatures = 0xA4;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x7D62D0;
                    Client.XTeaKey = 0x78F404;
                    Client.SocketStruct = 0x78F3D8;
                    Client.RecvPointer = 0x5B25DC;
                    Client.SendPointer = 0x5B2608;
                    Client.FrameRatePointer = 0x7935B4;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x506E64;
                    Client.Status = 0x792A68;
                    Client.SafeMode = 0x78F82C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x792AC8;
                    Client.ActionStateFreezer = 0x518054;
                    Client.LastMSGText = 0x78ABDC;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7D62F0;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x792B08;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x792B14;
                    Client.ClickContextMenuItemGroundId = 0x792B18;
                    Client.ClickContextMenuCreatureId = 0x792B10;
                    Client.SeeText = 0;
                    Client.LoginServerStart = 0x78A340;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B2610;
                    Client.LoginCharList = 0x792A1C;
                    Client.LoginCharListLength = 0x792A20;
                    Client.LoginSelectedChar = 0x792A18;
                    Client.GameWindowRectPointer = 0x641DA4;
                    Client.GameWindowBar = 0x7D62E4;
                    Client.DatPointer = 0x78F424;
                    Client.EventTriggerPointer = 0x519FC0;
                    Client.DialogPointer = 0x64510C;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x78ABB8;
                    Client.DecryptCall = 0x45BA35;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x792A24;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45BA00;
                    Client.GetNextPacketCall = 0x45BA35;
                    Client.RecvStream = 0x78F3F4;

                    Container.Start = 0x642858;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x451A00;
                    ContextMenus.OnClickContextMenuPtr = 0x44E1C0;
                    ContextMenus.OnClickContextMenuVf = 0x5B7820;
                    ContextMenus.AddSetOutfitContextMenu = 0x452932;
                    ContextMenus.AddPartyActionContextMenu = 0x4527D1;
                    ContextMenus.AddCopyNameContextMenu = 0x45299A;
                    ContextMenus.AddTradeWithContextMenu = 0x4525A9;
                    ContextMenus.AddLookContextMenu = 0x45245F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceWarIcon = 160;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B0EF0;

                    DrawSkin.DrawSkinFunc = 0x4B4B80;

                    Hotkey.SendAutomaticallyStart = 0x78FA28;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78FA50;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78F998;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78F878;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x649C60;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ED729;
                    Map.NameSpy2 = 0x4ED733;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EF5DA;
                    Map.LevelSpy2 = 0x4EF6DF;
                    Map.LevelSpy3 = 0x4EF760;
                    Map.LevelSpyPtr = 0x641DA4;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    //Map.RevealInvisible1 = 0x45F7A3;
                    //Map.RevealInvisible2 = 0x4EC595;
                    Map.FullLightNop = 0x4E5EC9;
                    Map.FullLightAdr = 0x4E5ECC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x635F04;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x633E1C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x6427E0;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x635F18;
                    Player.TilesToGo = 0x635F1C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x635EDC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x645148;

                    TextDisplay.PrintName = 0x4F0743;
                    TextDisplay.PrintFPS = 0x459918;
                    TextDisplay.ShowFPS = 0x633BB4;
                    TextDisplay.PrintTextFunc = 0x4B0330;
                    TextDisplay.NopFPS = 0x459854;

                    Vip.Start = 0x633C30;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.52 Addresses

                case "8.52":
                    BattleList.Start = 0x633EF0;
                    BattleList.End = 0x633EF0 + 0xA0 * 250;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x7923C0;
                    Client.XTeaKey = 0x78CEF4;
                    Client.SocketStruct = 0x78CEC8;
                    Client.RecvPointer = 0x5B15DC;
                    Client.SendPointer = 0x5B1608;
                    Client.FrameRatePointer = 0x7910A4;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x5067E4;
                    Client.Status = 0x790558;
                    Client.SafeMode = 0x78D31C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x7905B8;
                    Client.LastMSGText = 0x792630;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x7923E0;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x7905F8;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x790604;
                    Client.ClickContextMenuItemGroundId = 0x790608;
                    Client.ClickContextMenuCreatureId = 0x790600;
                    Client.SeeText = 0;
                    Client.LoginServerStart = 0x787E30;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B0610;
                    Client.LoginCharList = 0x79050C;
                    Client.LoginCharListLength = 0x790510;
                    Client.LoginSelectedChar = 0x790508;
                    Client.GameWindowRectPointer = 0x63F894;
                    Client.GameWindowBar = 0x7923D4;
                    Client.DatPointer = 0x78CF14;
                    Client.EventTriggerPointer = 0x5197D0;
                    Client.DialogPointer = 0x642BFC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x7886A8;
                    Client.DecryptCall = 0x45B8E5;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x790514;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45B8B0;
                    Client.GetNextPacketCall = 0x45B8E5;
                    Client.RecvStream = 0x78CEE4;

                    Container.Start = 0x640348;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x4518D0;
                    ContextMenus.OnClickContextMenuPtr = 0x44E070;
                    ContextMenus.OnClickContextMenuVf = 0x5B67D8;
                    ContextMenus.AddSetOutfitContextMenu = 0x452802;
                    ContextMenus.AddPartyActionContextMenu = 0x452853;
                    ContextMenus.AddCopyNameContextMenu = 0x45286A;
                    ContextMenus.AddTradeWithContextMenu = 0x452479;
                    ContextMenus.AddLookContextMenu = 0x45232F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B0C50;

                    DrawSkin.DrawSkinFunc = 0x4B48E0;

                    Hotkey.SendAutomaticallyStart = 0x78D518;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78D540;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78D48C;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78D36C;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x647750;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ED2C9;
                    Map.NameSpy2 = 0x4ED2D3;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EF17A;
                    Map.LevelSpy2 = 0x4EF27F;
                    Map.LevelSpy3 = 0x4EF300;
                    Map.LevelSpyPtr = 0x63F894;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45F7A3;
                    Map.RevealInvisible2 = 0x4EC595;
                    Map.FullLightNop = 0x4E5A59;
                    Map.FullLightAdr = 0x4E5A5C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x633E84;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x633E1C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x6402D0;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x633E98;
                    Player.TilesToGo = 0x633E9C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x633E5C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x642C38;

                    TextDisplay.PrintName = 0x4F02B1;
                    TextDisplay.PrintFPS = 0x4597C8;
                    TextDisplay.ShowFPS = 0x630B34;
                    TextDisplay.PrintTextFunc = 0x4B0090;
                    TextDisplay.NopFPS = 0x459704;

                    Vip.Start = 0x631BB0;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.50 Addresses

                case "8.50":
                    BattleList.Start = 0x632F30;
                    BattleList.End = 0x632F30 + 0xA0 * 250;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x7913F8;
                    Client.XTeaKey = 0x78BF34;
                    Client.SocketStruct = 0x78BF08;
                    Client.RecvPointer = 0x5B05DC;
                    Client.SendPointer = 0x5B0608;
                    Client.FrameRatePointer = 0x7900DC;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x506794;
                    Client.Status = 0x78F598;
                    Client.SafeMode = 0x78C35C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x78F5F8;
                    Client.LastMSGText = 0x791668;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x791418;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x78F634;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x78F640;
                    Client.ClickContextMenuItemGroundId = 0x78F64C;
                    Client.ClickContextMenuCreatureId = 0x78F59C;
                    Client.SeeText = 0;
                    Client.LoginServerStart = 0x786E70;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5B0610;
                    Client.LoginCharList = 0x78F54C;
                    Client.LoginCharListLength = Client.LoginCharList + 4;
                    Client.LoginSelectedChar = 0x78F548;
                    Client.GameWindowRectPointer = 0x63E8D4;
                    Client.GameWindowBar = 0x641C40;
                    Client.DatPointer = 0x78BF54;
                    Client.EventTriggerPointer = 0x519770;
                    Client.DialogPointer = 0x641C3C;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x7876E8;
                    Client.DecryptCall = 0x45B845;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x78F554;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
                    Client.ParserFunc = 0x45B810;
                    Client.GetNextPacketCall = 0x45B845;
                    Client.RecvStream = 0x78BF24;

                    Container.Start = 0x63F388;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x451830;
                    ContextMenus.OnClickContextMenuPtr = 0x44DFD0;
                    ContextMenus.OnClickContextMenuVf = 0x5B5B98;
                    ContextMenus.AddSetOutfitContextMenu = 0x452762;
                    ContextMenus.AddPartyActionContextMenu = 0x4527B3;
                    ContextMenus.AddCopyNameContextMenu = 0x4527CA;
                    ContextMenus.AddTradeWithContextMenu = 0x4523D9;
                    ContextMenus.AddLookContextMenu = 0x45228F;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x50;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 40;
                    DatItem.WalkSpeed = 44;
                    DatItem.TextLimit = 48;
                    DatItem.LightRadius = 52;
                    DatItem.LightColor = 56;
                    DatItem.ShiftX = 60;
                    DatItem.ShiftY = 64;
                    DatItem.WalkHeight = 68;
                    DatItem.Automap = 72;
                    DatItem.LensHelp = 76;

                    DrawItem.DrawItemFunc = 0x4B0BC0;

                    DrawSkin.DrawSkinFunc = 0x4B4860;

                    Hotkey.SendAutomaticallyStart = 0x78C558;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78C580;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78C4C8;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78C3A8;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x646790;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ED239;
                    Map.NameSpy2 = 0x4ED243;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EF0EA;
                    Map.LevelSpy2 = 0x4EF1EF;
                    Map.LevelSpy3 = 0x4EF270;
                    Map.LevelSpyPtr = 0x63E8D4;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45F6F3;
                    Map.RevealInvisible2 = 0x4EC505;
                    Map.FullLightNop = 0x4E59C9;
                    Map.FullLightAdr = 0x4E59CC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x632EC4;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x632E5C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x63F310;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x632ED8;
                    Player.TilesToGo = 0x632EDC;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x632E9C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x641C78;

                    TextDisplay.PrintName = 0x4F0221;
                    TextDisplay.PrintFPS = 0x459728;
                    TextDisplay.ShowFPS = 0x630B74;
                    TextDisplay.PrintTextFunc = 0x4B0000;
                    TextDisplay.NopFPS = 0x459664;

                    Vip.Start = 0x630BF0;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.42 Addresses

                case "8.42":
                    BattleList.Start = 0x631DF0;
                    BattleList.End = 0x631DF0 + 0xA0*250;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x7902B8;
                    Client.XTeaKey = 0x78ADF4;
                    Client.SocketStruct = 0x78ADC8;
                    Client.RecvPointer = 0x5AF5DC;
                    Client.SendPointer = 0x5AF608;
                    Client.FrameRatePointer = 0x78EF9C;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x505EF4;//not verified
                    Client.Status = 0x78E458;
                    Client.SafeMode = 0x78B21C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x78E4B8;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.LastMSGText = 0x790520;
                    Client.StatusbarText = 0x7902D0;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x78E4F4;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x78E500;
                    Client.ClickContextMenuItemGroundId = 0x78E50C;
                    Client.ClickContextMenuCreatureId = 0x78E45C;
                    Client.SeeText = 0x7904F8;
                    Client.LoginServerStart = 0x785D30;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5AF610;
                    Client.LoginCharList = 0x78E40C;
                    Client.LoginCharListLength = Client.LoginCharList + 4;
                    Client.LoginSelectedChar = 0x78E408;
                    Client.GameWindowRectPointer = 0x63D794;
                    Client.GameWindowBar = 0x640B00;
                    Client.DatPointer = 0x78AE14;
                    Client.EventTriggerPointer = 0x518E40;
                    Client.DialogPointer = 0x640AFC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x7865A8;
                    Client.DecryptCall = 0x45B145;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x78E414;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x63E248;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x451160;
                    ContextMenus.OnClickContextMenuPtr = 0x44D920;
                    ContextMenus.OnClickContextMenuVf = 0x5B4AA0;
                    ContextMenus.AddSetOutfitContextMenu = 0x452092;
                    ContextMenus.AddPartyActionContextMenu = 0x4520E3;
                    ContextMenus.AddCopyNameContextMenu = 0x4520FA;
                    ContextMenus.AddTradeWithContextMenu = 0x451D09;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x78B418;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x78B440;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x78B388;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x78B268;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x645650;
                    Map.StepTile = 168;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 10;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ECA89;
                    Map.NameSpy2 = 0x4ECA93;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EE93A;
                    Map.LevelSpy2 = 0x4EEA3F;
                    Map.LevelSpy3 = 0x4EEAC0;
                    Map.LevelSpyPtr = 0x63D794;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45EFE3;
                    Map.RevealInvisible2 = 0x4EBD55;
                    Map.FullLightNop = 0x4E5239;
                    Map.FullLightAdr = 0x4E523C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x631D84;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x62CCBC;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x63E1D0;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x631D98;
                    Player.TilesToGo = 0x631D9C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x631D5C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x640B38;

                    TextDisplay.PrintName = 0x4EFA71;
                    TextDisplay.PrintFPS = 0x459048;
                    TextDisplay.ShowFPS = 0x62FA34;
                    TextDisplay.PrintTextFunc = 0x4AF8D0;
                    TextDisplay.NopFPS = 0x458F84;

                    Vip.Start = 0x62FAB0;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 200;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.41 Addresses

                case "8.41":
                    BattleList.Start = 0x62CD90;
                    BattleList.End = 0x6369D0;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x78B258;
                    Client.XTeaKey = 0x785D94;
                    Client.SocketStruct = 0x785D68;
                    Client.SendPointer = 0x5AB600;
                    Client.RecvPointer = 0x5AB5D4;
                    Client.FrameRatePointer = 0x789F3C;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x5061C4;//not verified
                    Client.Status = 0x7893F8;
                    Client.SafeMode = 0x7861BC;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x789458;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.LastMSGText = 0x78B4C0;
                    Client.StatusbarText = 0x78B270;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x789494;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x7894A0;
                    Client.ClickContextMenuItemGroundId = 0x7894AC;
                    Client.ClickContextMenuCreatureId = 0x7893FC;
                    Client.SeeText = 0x78B498;
                    Client.LoginServerStart = 0x780CD0;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5AB610;
                    Client.LoginCharList = 0x7893AC;
                    Client.LoginCharListLength = Client.LoginCharList + 4;
                    Client.LoginSelectedChar = 0x7893A8;
                    Client.GameWindowRectPointer = 0x638734;
                    Client.GameWindowBar = 0x63BAA0;
                    Client.DatPointer = 0x785DB4;
                    Client.DialogPointer = 0x63BA9C;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x781548;
                    Client.DecryptCall = 0x45ACD5;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x7893B4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x6391E8;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x451060;
                    ContextMenus.OnClickContextMenuPtr = 0x44D840;
                    ContextMenus.OnClickContextMenuVf = 0x5B0AD0;
                    ContextMenus.AddSetOutfitContextMenu = 0x451F92;
                    ContextMenus.AddPartyActionContextMenu = 0x451FE3;
                    ContextMenus.AddCopyNameContextMenu = 0x451FFA;
                    ContextMenus.AddTradeWithContextMenu = 0x451C09;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x7863B8;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x7863E0;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x786328;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x786208;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x6405F0;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 13;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4ECA09;
                    Map.NameSpy2 = 0x4ECA13;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EE8BA;
                    Map.LevelSpy2 = 0x4EE9BF;
                    Map.LevelSpy3 = 0x4EEA40;
                    Map.LevelSpyPtr = 0x638734;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45EB63;
                    Map.RevealInvisible2 = 0x4EBCD5;
                    Map.FullLightNop = 0x4E51B9;
                    Map.FullLightAdr = 0x4E51BC;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x62CD24;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x62CCBC;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x639170;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x62CD38;
                    Player.TilesToGo = 0x62CD3C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x62CCFC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x63BAD8;

                    TextDisplay.PrintName = 0x4EF9F1;
                    TextDisplay.PrintFPS = 0x458BD8;
                    TextDisplay.ShowFPS = 0x62AA30;
                    TextDisplay.PrintTextFunc = 0x4AF480;
                    TextDisplay.NopFPS = 0x458B14;

                    Vip.Start = 0x62AA50;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.40 Addresses

                case "8.40":
                    BattleList.Start = 0x062BD90;
                    BattleList.End = 0x6359D0;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 250;

                    Client.StartTime = 0x78A1D0;
                    Client.XTeaKey = 0x784D0C;
                    Client.SocketStruct = 0x784CE0;
                    Client.SendPointer = 0x5AB600;
                    Client.FrameRatePointer = 0x788EB4;
                    Client.FrameRateCurrentOffset = 0x60;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x505924;
                    Client.Status = 0x788370;
                    Client.SafeMode = 0x785134;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x7883D0;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.LastMSGText = 0x78A438;
                    Client.StatusbarText = 0x78A1E8;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x78840C;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.ClickContextMenuItemId = 0x788418;
                    Client.ClickContextMenuItemGroundId = 0x788424;
                    Client.SeeText = 0x78A410;
                    Client.LoginServerStart = 0x77FC48;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5AB610;
                    Client.LoginCharList = 0x788324;
                    Client.LoginCharListLength = Client.LoginCharList + 4;
                    Client.LoginSelectedChar = 0x788320;
                    Client.GameWindowRectPointer = 0x6376A8;
                    Client.GameWindowBar = 0x63AA18;
                    Client.DatPointer = 0x784D2C;
                    Client.DialogPointer = 0x63AA14;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LastRcvPacket = 0x7804C0;
                    Client.DecryptCall = 0x45A745;
                    Client.LoginAccountNum = 0;
                    Client.LoginPassword = 0x78832C;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginPatch = 0;
                    Client.LoginPatch2 = 0;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x638160;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);

                    ContextMenus.AddContextMenuPtr = 0x450B00;
                    ContextMenus.OnClickContextMenuPtr = 0x44D2F0;
                    ContextMenus.OnClickContextMenuVf = 0x5B0980;
                    ContextMenus.AddSetOutfitContextMenu = 0x451A32;
                    ContextMenus.AddPartyActionContextMenu = 0x451A83;
                    ContextMenus.AddCopyNameContextMenu = 0x451A9A;
                    ContextMenus.AddTradeWithContextMenu = 0x4516A9;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 132;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x785330;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x785358;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x7852A0;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x785180;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x63F568;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 13;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.PlayerTile = 0x3E3A08;
                    Map.NameSpy1 = 0x4EC179;
                    Map.NameSpy2 = 0x4EC183;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EE02A;
                    Map.LevelSpy2 = 0x4EE12F;
                    Map.LevelSpy3 = 0x4EE1B0;
                    Map.LevelSpyPtr = 0x6376A8;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x2A88;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0x88, 0x2A, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45E2F3;
                    Map.RevealInvisible2 = 0x4EB445;
                    Map.FullLightNop = 0x4E4929;
                    Map.FullLightAdr = 0x4E492C;
                    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
                    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x62BD24;
                    Player.Flags = Player.Experience - 108;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x00613AFC;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x6380E8;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x62BD38;
                    Player.TilesToGo = 0x62BD3C;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x62BCFC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0;
                    Player.AccessS = 0;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x63AA50;

                    TextDisplay.PrintName = 0x4EF161;
                    TextDisplay.PrintFPS = 0x458648;
                    TextDisplay.ShowFPS = 0x629A34;
                    TextDisplay.PrintTextFunc = 0x4AEC00;
                    TextDisplay.NopFPS = 0x458584;

                    Vip.Start = 0x629A50;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
                    break;

                #endregion

                #region 8.31 Addresses

                case "8.31":
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 150;
                    BattleList.Start = Player.Experience + 108;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x785310;
                    Client.XTeaKey = 0x77FE4C;
                    Client.SocketStruct = 0x77FE20;
                    Client.SendPointer = 0x5AA600;
                    Client.FrameRatePointer = 0x783FF4;
                    Client.FrameRateCurrentOffset = 0x0;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x505894;
                    Client.Status = 0x7834B0;
                    Client.SafeMode = 0x780274;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x783510;
                    Client.LastMSGText = 0x785578;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.StatusbarText = 0x785328;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x78354C;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.SeeText = 0x77BC80;
                    Client.LoginServerStart = 0x77AD88;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5AA610;
                    Client.LoginCharList = 0x783464;
                    Client.LoginSelectedChar = 0x783460;
                    Client.GameWindowRectPointer = 0x6327E8;
                    Client.GameWindowBar = 0x635B58;
                    Client.DatPointer = 0x77FE6C;
                    Client.DialogPointer = 0x635B54;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LoginPassword = 0x77F3E4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginAccountNum = Client.LoginAccount + 12;
                    Client.Nop = 0x90;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x6332A0;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    ContextMenus.AddContextMenuPtr = 0x450AA0;
                    ContextMenus.OnClickContextMenuVf = 0x5AF950;
                    ContextMenus.AddSetOutfitContextMenu = 0x4519D2;
                    ContextMenus.AddPartyActionContextMenu = 0x451A23;
                    ContextMenus.AddCopyNameContextMenu = 0x451A3A;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x780470;
                    Hotkey.SendAutomaticallyStep = 0x1;
                    Hotkey.TextStart = 0x780498;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x7803E0;
                    Hotkey.ObjectStep = 0x4;
                    Hotkey.ObjectUseTypeStart = 0x7802C0;
                    Hotkey.ObjectUseTypeStep = 0x4;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x63A6A8;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 13;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.NameSpy1 = 0x4EC109;
                    Map.NameSpy2 = 0x4EC113;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EDFBA;
                    Map.LevelSpy2 = 0x4EE0BF;
                    Map.LevelSpy3 = 0x4EE140;
                    Map.LevelSpyPtr = 0x6327E8;
                    Map.LevelSpyAdd1 = 28;
                    Map.LevelSpyAdd2 = 0x25D8;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0xD8, 0x25, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45E283;
                    Map.RevealInvisible1Default = 0x72;
                    Map.RevealInvisible1Edited = 0xEB;
                    Map.RevealInvisible2 = 0x4EB3D5;
                    Map.RevealInvisible2Default = 0x75;
                    Map.RevealInvisible2Edited = 0xEB;
                    Map.FullLightNop = 0x4E48B9;
                    Map.FullLightAdr = 0x4E48BC;
                    Map.FullLightAdrDefault = 0x80;
                    Map.FullLightAdrEdited = 0xFF;

                    Player.Experience = 0x62ACE4;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.Experience + 76;
                    Player.GoToZ = Player.Experience + 72;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.Fishing = Player.Experience - 52;
                    Player.Shielding = Player.Experience - 56;
                    Player.Distance = Player.Experience - 60;
                    Player.Axe = Player.Experience - 64;
                    Player.Sword = Player.Experience - 68;
                    Player.Club = Player.Experience - 72;
                    Player.Fist = Player.Experience - 76;
                    Player.FishingPercent = Player.Experience - 80;
                    Player.ShieldingPercent = Player.Experience - 84;
                    Player.DistancePercent = Player.Experience - 88;
                    Player.AxePercent = Player.Experience - 92;
                    Player.SwordPercent = Player.Experience - 96;
                    Player.ClubPercent = Player.Experience - 100;
                    Player.FistPercent = Player.Experience - 104;
                    Player.Flags = Player.Experience - 108;
                    Player.MaxSlots = 11;
                    Player.SlotHead = 0x633228;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x62ACF8;
                    Player.TilesToGo = 0x62ACFC;
                    Player.RedSquare = 0x62ACBC;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x635B90;

                    TextDisplay.PrintName = 0x4EF0F1;
                    TextDisplay.PrintFPS = 0x4585E8;
                    TextDisplay.ShowFPS = 0x6289F4;
                    TextDisplay.PrintTextFunc = 0x4AEB90;
                    TextDisplay.NopFPS = 0x458524;

                    Vip.Start = 0x628A10;
                    Vip.End = 0x625228;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

                #endregion

                #region 8.22 Addresses

                case "8.22":
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 150;
                    BattleList.Start = Player.Experience + 108;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x781258;
                    Client.XTeaKey = 0x77BDB4;
                    Client.SocketStruct = 0x77BD88;
                    Client.SendPointer = 0x5A7600;
                    Client.FrameRatePointer = 0x77FF3C;
                    Client.FrameRateCurrentOffset = 0x0;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x502B94;//not verified
                    Client.Status = 0x77F3F8;
                    Client.SafeMode = 0x77C1D0;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x77F458;
                    Client.LastMSGText = 0x7814C0; //8.1, 8.0 = 0x7686A8
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28; //8.1, 8.0 = 0x768680
                    Client.StatusbarText = 0x781270;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x77F494;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeText = Client.ClickId + 12;
                    Client.LoginServerStart = 0x776CF0;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5A7610;
                    Client.LoginCharList = 0x77F3BC;
                    Client.LoginSelectedChar = 0x77F3B8;
                    Client.GameWindowRectPointer = 0x62E754;
                    Client.GameWindowBar = 0x631AC0;
                    Client.DatPointer = 0x77BDD4;
                    Client.DialogPointer = 0x631ABC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LoginPassword = 0x77F3E4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginAccountNum = Client.LoginAccount + 12;
                    Client.Nop = 0x90;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x62F208;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x77C3C8;
                    Hotkey.SendAutomaticallyStep = 0x1;
                    Hotkey.TextStart = 0x77C3F0;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x77C2A8;
                    Hotkey.ObjectStep = 0x4;
                    Hotkey.ObjectUseTypeStart = 0x77C218;
                    Hotkey.ObjectUseTypeStep = 0x4;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x636610;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 13;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.PlayerTile = 0x3E3A08;
                    Map.NameSpy1 = 0x4E95F9;
                    Map.NameSpy2 = 0x4E9603;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4EB4AA;
                    Map.LevelSpy2 = 0x4EB5AF;
                    Map.LevelSpy3 = 0x4EB630;
                    Map.LevelSpyPtr = 0x62E754;
                    Map.LevelSpyAdd2 = 0x25D8;
                    Map.LevelSpyDefault = new byte[] { 0x89, 0x86, 0xD8, 0x25, 0x00, 0x00 };
                    Map.RevealInvisible1 = 0x45BF63;
                    Map.RevealInvisible2 = 0x4E88C5;

                    Player.Experience = 0x626C64;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.Experience + 76;
                    Player.GoToZ = Player.Experience + 72;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.Fishing = Player.Experience - 52;
                    Player.Shielding = Player.Experience - 56;
                    Player.Distance = Player.Experience - 60;
                    Player.Axe = Player.Experience - 64;
                    Player.Sword = Player.Experience - 68;
                    Player.Club = Player.Experience - 72;
                    Player.Fist = Player.Experience - 76;
                    Player.FishingPercent = Player.Experience - 80;
                    Player.ShieldingPercent = Player.Experience - 84;
                    Player.DistancePercent = Player.Experience - 88;
                    Player.AxePercent = Player.Experience - 92;
                    Player.SwordPercent = Player.Experience - 96;
                    Player.ClubPercent = Player.Experience - 100;
                    Player.FistPercent = Player.Experience - 104;
                    Player.Flags = Player.Experience - 108;
                    Player.MaxSlots = 11;
                    Player.SlotHead = 0x62D190;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x626C78;
                    Player.TilesToGo = 0x626C7C;
                    Player.RedSquare = 0x626C3C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0x766DF4;
                    Player.AccessS = 0x766DC4;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;

                    TextDisplay.PrintName = 0x4EC5E1;
                    TextDisplay.PrintFPS = 0x4563C8;
                    TextDisplay.ShowFPS = 0x624974;
                    TextDisplay.PrintTextFunc = 0x4AC490;
                    TextDisplay.NopFPS = 0x456304;

                    Vip.Start = 0x624990;
                    Vip.End = 0x625228;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

                #endregion

                #region 8.21 Addresses

                case "8.21":
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 150;
                    BattleList.Start = Player.Experience + 108;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x77BA3C;
                    Client.XTeaKey = 0x779DB4;
                    Client.SocketStruct = 0x779D88;
                    Client.SendPointer = 0x5A5600;
                    Client.FrameRatePointer = 0x77DF3C;
                    Client.FrameRateCurrentOffset = 0x0;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x502B74;//not verified
                    Client.Status = 0x77D3F8;
                    Client.SafeMode = 0x77A1D0;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x77D458;
                    Client.LastMSGText = 0x76DB78; //8.1, 8.0 = 0x7686A8
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28; //8.1, 8.0 = 0x768680
                    Client.StatusbarText = 0x77EA58;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x77D494;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeText = Client.ClickId + 12;
                    Client.LoginServerStart = 0x774CF0;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5A5610;
                    Client.LoginCharList = 0x77D3BC;
                    Client.LoginSelectedChar = 0x77D3B8;
                    Client.DatPointer = 0x779DD4;
                    Client.DialogPointer = 0x62FABC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LoginPassword = 0x77D3C4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginAccountNum = Client.LoginAccount + 12;
                    Client.Nop = 0x90;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x62D208;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x77A3C8;
                    Hotkey.SendAutomaticallyStep = 0x1;
                    Hotkey.TextStart = 0x77A3F0;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x77A338;
                    Hotkey.ObjectStep = 0x4;
                    Hotkey.ObjectUseTypeStart = 0x77A218;
                    Hotkey.ObjectUseTypeStep = 0x4;
                    Hotkey.MaxHotkeys = 36;

                    Player.Experience = 0x624C64;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.Experience + 76;
                    Player.GoToZ = Player.Experience + 72;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.Fishing = Player.Experience - 52;
                    Player.Shielding = Player.Experience - 56;
                    Player.Distance = Player.Experience - 60;
                    Player.Axe = Player.Experience - 64;
                    Player.Sword = Player.Experience - 68;
                    Player.Club = Player.Experience - 72;
                    Player.Fist = Player.Experience - 76;
                    Player.FishingPercent = Player.Experience - 80;
                    Player.ShieldingPercent = Player.Experience - 84;
                    Player.DistancePercent = Player.Experience - 88;
                    Player.AxePercent = Player.Experience - 92;
                    Player.SwordPercent = Player.Experience - 96;
                    Player.ClubPercent = Player.Experience - 100;
                    Player.FistPercent = Player.Experience - 104;
                    Player.Flags = Player.Experience - 108;
                    Player.MaxSlots = 11;
                    Player.SlotHead = 0x62D190;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x624C78;
                    Player.TilesToGo = 0x624C7C;
                    Player.RedSquare = 0x624C3C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0x766DF4;
                    Player.AccessS = 0x766DC4;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;

                    TextDisplay.PrintName = 0x4EC521;
                    TextDisplay.PrintFPS = 0x456468;
                    TextDisplay.ShowFPS = 0x622974;
                    TextDisplay.PrintTextFunc = 0x4AC500;
                    TextDisplay.NopFPS = 0x4563A4;

                    Vip.Start = 0x622990;
                    Vip.End = 0x623228;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

                #endregion

                #region 8.20 Addresses

                case "8.20":
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 150;
                    BattleList.Start = Player.Experience + 108;
                    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);

                    Client.StartTime = 0x77BA3C;
                    Client.XTeaKey = 0x776DB4;
                    Client.SocketStruct = 0x776D88;
                    Client.SendPointer = 0x5A3600;
                    Client.FrameRatePointer = 0x77AF3C;
                    Client.FrameRateCurrentOffset = 0x0;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0x500CE4;//not verified
                    Client.Status = 0x77A3F8;
                    Client.SafeMode = 0x7771D0;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x77A458;
                    Client.LastMSGText = 0x76DB78; //8.1, 8.0 = 0x7686A8
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28; //8.1, 8.0 = 0x768680
                    Client.StatusbarText = 0x77BA58;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x77A494;
                    Client.SeeText = 0x77BC80;
                    Client.LoginServerStart = 0x0771CF0;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x5A3610;
                    Client.LoginCharList = 0x77A3BC;
                    Client.LoginSelectedChar = 0x77A3B8;
                    Client.DatPointer = 0x776DD4;
                    Client.DialogPointer = 0x62CABC;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LoginPassword = 0x77A3C4;
                    Client.LoginAccount = Client.LoginPassword + 32;
                    Client.LoginAccountNum = Client.LoginAccount + 12;
                    Client.Nop = 0x90;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x62A208;
                    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x7773C8;
                    Hotkey.SendAutomaticallyStep = 0x1;
                    Hotkey.TextStart = 0x7773F0;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x777338;
                    Hotkey.ObjectStep = 0x4;
                    Hotkey.ObjectUseTypeStart = 0x777218;
                    Hotkey.ObjectUseTypeStep = 0x4;
                    Hotkey.MaxHotkeys = 36;

                    Player.Experience = 0x621C64;
                    Player.GoToX = Player.Experience + 80;
                    Player.GoToY = Player.Experience + 76;
                    Player.GoToZ = Player.Experience + 72;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.Fishing = Player.Experience - 52;
                    Player.Shielding = Player.Experience - 56;
                    Player.Distance = Player.Experience - 60;
                    Player.Axe = Player.Experience - 64;
                    Player.Sword = Player.Experience - 68;
                    Player.Club = Player.Experience - 72;
                    Player.Fist = Player.Experience - 76;
                    Player.FishingPercent = Player.Experience - 80;
                    Player.ShieldingPercent = Player.Experience - 84;
                    Player.DistancePercent = Player.Experience - 88;
                    Player.AxePercent = Player.Experience - 92;
                    Player.SwordPercent = Player.Experience - 96;
                    Player.ClubPercent = Player.Experience - 100;
                    Player.FistPercent = Player.Experience - 104;
                    Player.Flags = Player.Experience - 108;
                    Player.MaxSlots = 11;
                    Player.SlotHead = 0x62A190;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x621C78;
                    Player.TilesToGo = 0x621C7C;
                    Player.RedSquare = 0x621C3C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0x766DF4;
                    Player.AccessS = 0x766DC4;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;

                    TextDisplay.PrintName = 0x4EA881;
                    TextDisplay.PrintFPS = 0x455A38;
                    TextDisplay.ShowFPS = 0x61F974;
                    TextDisplay.PrintTextFunc = 0x4ABAD0;
                    TextDisplay.NopFPS = 0x455974;

                    Vip.Start = 0x61F990;
                    Vip.End = 0x620228;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

                #endregion

                #region 8.10 & 8.11 Addresses
                case "8.10":
                case "8.11":
                    BattleList.Start = 0x613BD0;
                    BattleList.End = 0x619990;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 100;

                    Client.StartTime = 0x76D90C;
                    Client.XTeaKey = 0x768C7C;
                    Client.SocketStruct = 0x768C50;
                    Client.SendPointer = 0x597600;
                    Client.FrameRatePointer = 0x76CE0C;
                    Client.FrameRateCurrentOffset = 0x00;
                    Client.FrameRateLimitOffset = 0x58;
                    Client.MultiClient = 0;//?
                    Client.Status = 0x76C2C8;
                    Client.SafeMode = 0x76909C;
                    Client.FollowMode = Client.SafeMode + 4;
                    Client.AttackMode = Client.FollowMode + 4;
                    Client.ActionState = 0x76C328;
                    //Client.CurrentWindow = 0x61E984;
                    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
                    Client.LastMSGText = 0x76DB78;
                    Client.StatusbarText = 0x76D928;
                    Client.StatusbarTime = Client.StatusbarText - 4;
                    Client.ClickId = 0x76C364;
                    Client.ClickCount = Client.ClickId + 4;
                    Client.ClickZ = Client.ClickId - 0x68;
                    Client.SeeId = Client.ClickId + 12;
                    Client.SeeCount = Client.SeeId + 4;
                    Client.SeeZ = Client.SeeId - 0x68;
                    Client.SeeText = 0x76DB50;
                    Client.LoginServerStart = 0x763BB8;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x597610;
                    Client.LoginCharList = 0x76C28C;
                    Client.LoginCharListLength = 0x76C290;
                    Client.GameWindowRectPointer = 0x12D624;
                    Client.DatPointer = 0x768C9C;
                    Client.DialogPointer = 0x61E984;
                    Client.DialogLeft = 0x14;
                    Client.DialogTop = 0x18;
                    Client.DialogWidth = 0x1C;
                    Client.DialogHeight = 0x20;
                    Client.DialogCaption = 0x50;
                    Client.LoginAccountNum = 0x76C2C0;
                    Client.LoginAccount = 0x76C2B4;
                    Client.LoginPassword = 0x76C294;
                    Client.LoginPatch = 0x47935E;
                    Client.LoginPatch2 = 0x47A2B3;
                    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
                    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };

                    Container.Start = 0x61C0D0;
                    Container.End = 0x61DF90;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    DatItem.StepItems = 0x4C;
                    DatItem.Width = 0;
                    DatItem.Height = 4;
                    DatItem.MaxSizeInPixels = 8;
                    DatItem.Layers = 12;
                    DatItem.PatternX = 16;
                    DatItem.PatternY = 20;
                    DatItem.PatternDepth = 24;
                    DatItem.Phase = 28;
                    DatItem.Sprite = 32;
                    DatItem.Flags = 36;
                    DatItem.CanLookAt = 0;
                    DatItem.WalkSpeed = 40;
                    DatItem.TextLimit = 44;
                    DatItem.LightRadius = 48;
                    DatItem.LightColor = 52;
                    DatItem.ShiftX = 56;
                    DatItem.ShiftY = 60;
                    DatItem.WalkHeight = 64;
                    DatItem.Automap = 68;
                    DatItem.LensHelp = 72;

                    Hotkey.SendAutomaticallyStart = 0x769298;
                    Hotkey.SendAutomaticallyStep = 0x01;
                    Hotkey.TextStart = 0x7692C0;
                    Hotkey.TextStep = 0x100;
                    Hotkey.ObjectStart = 0x769208;
                    Hotkey.ObjectStep = 0x04;
                    Hotkey.ObjectUseTypeStart = 0x7690E8;
                    Hotkey.ObjectUseTypeStep = 0x04;
                    Hotkey.MaxHotkeys = 36;

                    Map.MapPointer = 0x6234D8;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTileObjects = 13;
                    Map.MaxX = 18;
                    Map.MaxY = 14;
                    Map.MaxZ = 8;
                    Map.MaxTiles = 2016;
                    Map.ZAxisDefault = 7;
                    Map.PlayerTile = 0x3E3A08;
                    Map.NameSpy1 = 0x4DF469;
                    Map.NameSpy2 = 0x004DF473;
                    Map.NameSpy1Default = 19061;
                    Map.NameSpy2Default = 16501;
                    Map.LevelSpy1 = 0x4E115A;
                    Map.LevelSpy2 = 0x4E125F;
                    Map.LevelSpy3 = 0x4E12E0;
                    Map.LevelSpyPtr = 0x61B608;
                    Map.LevelSpyAdd2 = 0x25D8;
                    Map.RevealInvisible1 = 0x453AF3;
                    Map.RevealInvisible2 = 0x4DE734;

                    Player.Flags = 0x00613AF8;
                    Player.Experience = 0x00613B64;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x00613AFC;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x61C058;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.MaxSlots = 11;
                    Player.DistanceSlotCount = 4;
                    Player.CurrentTileToGo = 0x613B78;
                    Player.TilesToGo = 0x613B7C;
                    Player.GoToX = 0x613BB4;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x613B3C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0x766DF4;
                    Player.AccessS = 0x766DC4;
                    Player.TargetId = Player.RedSquare;
                    Player.TargetBattlelistId = Player.TargetId - 8;
                    Player.TargetBattlelistType = Player.TargetId - 5;
                    Player.TargetType = Player.TargetId + 3;
                    Player.Z = 0x61E9C0;

                    TextDisplay.PrintName = 0x4E228A;
                    TextDisplay.PrintFPS = 0x44E753;
                    TextDisplay.ShowFPS = 0x611874;
                    TextDisplay.PrintTextFunc = 0x4A3C00;
                    TextDisplay.NopFPS = 0x44E68F;

                    Vip.Start = 0x611890;
                    Vip.End = 0x612128;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

                #endregion

                #region 8.00 Addresses

                case "8.00":
                    BattleList.Start = 0x60EB30;
                    BattleList.End = 0x6148F0;
                    BattleList.StepCreatures = 0xA0;
                    BattleList.MaxCreatures = 100;

                    Client.XTeaKey = 0x7637AC;
                    Client.SocketStruct = 0x763780;
                    Client.SendPointer = 0x593600;
                    //Client.FrameRate = 0x7661F4; 
                    Client.MultiClient = 0x4EFB71; //not verified
                    Client.Status = 0x766DF8;
                    Client.FollowMode = 0x763BD0;
                    Client.AttackMode = 0x763BD4;
                    Client.SafeMode = 0x763BCC;
                    Client.ActionState = 0x751BD8;
                    //Client.CurrentWindow = 0x6198B4;
                    Client.LastMSGAuthor = 0x768680;
                    Client.LastMSGText = 0x7686A8;
                    Client.StatusbarText = 0x00768458;
                    Client.StatusbarTime = 0x00768454;
                    Client.ClickId = 0x766E94;
                    Client.ClickCount = 0x766E98;
                    Client.ClickZ = 0x766E2C;
                    Client.SeeId = 0x766EA0;
                    Client.SeeCount = 0x766EA4;
                    Client.SeeZ = 0x766E00;
                    Client.LoginServerStart = 0x75EAE8;
                    Client.StepLoginServer = 112;
                    Client.DistancePort = 100;
                    Client.MaxLoginServers = 10;
                    Client.RSA = 0x593610;
                    Client.LoginCharList = 0x766DBC;
                    Client.LoginSelectedChar = 0x766DB8;
                    Client.DialogPointer = 0x6198B4;
                    Client.DatPointer = 0x7637CC;

                    Container.Start = 0x617000;
                    Container.End = 0x618EC0;
                    Container.StepContainer = 492;
                    Container.StepSlot = 12;
                    Container.MaxContainers = 16;
                    Container.MaxStack = 100;
                    Container.DistanceIsOpen = 0;
                    Container.DistanceId = 4;
                    Container.DistanceName = 16;
                    Container.DistanceVolume = 48;
                    Container.DistanceAmount = 56;
                    Container.DistanceItemId = 60;
                    Container.DistanceItemCount = 64;

                    Creature.DistanceId = 0;
                    Creature.DistanceType = 3;
                    Creature.DistanceName = 4;
                    Creature.DistanceX = 36;
                    Creature.DistanceY = 40;
                    Creature.DistanceZ = 44;
                    Creature.DistanceScreenOffsetHoriz = 48;
                    Creature.DistanceScreenOffsetVert = 52;
                    Creature.DistanceIsWalking = 76;
                    Creature.DistanceWalkSpeed = 140;
                    Creature.DistanceDirection = 80;
                    Creature.DistanceIsVisible = 144;
                    Creature.DistanceBlackSquare = 128;
                    Creature.DistanceLight = 120;
                    Creature.DistanceLightColor = 124;
                    Creature.DistanceHPBar = 136;
                    Creature.DistanceSkull = 148;
                    Creature.DistanceParty = 152;
                    Creature.DistanceOutfit = 96;
                    Creature.DistanceColorHead = 100;
                    Creature.DistanceColorBody = 104;
                    Creature.DistanceColorLegs = 108;
                    Creature.DistanceColorFeet = 112;
                    Creature.DistanceAddon = 116;

                    Map.MapPointer = 0x61E408;
                    Map.StepTile = 172;
                    Map.StepTileObject = 12;
                    Map.DistanceTileObjectCount = 0;
                    Map.DistanceTileObjects = 4;
                    Map.DistanceObjectId = 0;
                    Map.DistanceObjectData = 4;
                    Map.DistanceObjectDataEx = 8;
                    Map.MaxTiles = 2016;
                    Map.MaxTileObjects = 13;
                    Map.ZAxisDefault = 7;

                    Player.Flags = 0x60EA58;
                    Player.Experience = 0x60EAC4;
                    Player.Id = Player.Experience + 12;
                    Player.Health = Player.Experience + 8;
                    Player.HealthMax = Player.Experience + 4;
                    Player.Level = Player.Experience - 4;
                    Player.MagicLevel = Player.Experience - 8;
                    Player.LevelPercent = Player.Experience - 12;
                    Player.MagicLevelPercent = Player.Experience - 16;
                    Player.Mana = Player.Experience - 20;
                    Player.ManaMax = Player.Experience - 24;
                    Player.Soul = Player.Experience - 28;
                    Player.Stamina = Player.Experience - 32;
                    Player.Capacity = Player.Experience - 36;
                    Player.FistPercent = 0x60EA5C;
                    Player.ClubPercent = Player.FistPercent + 4;
                    Player.SwordPercent = Player.FistPercent + 8;
                    Player.AxePercent = Player.FistPercent + 12;
                    Player.DistancePercent = Player.FistPercent + 16;
                    Player.ShieldingPercent = Player.FistPercent + 20;
                    Player.FishingPercent = Player.FistPercent + 24;
                    Player.Fist = Player.FistPercent + 28;
                    Player.Club = Player.FistPercent + 32;
                    Player.Sword = Player.FistPercent + 36;
                    Player.Axe = Player.FistPercent + 40;
                    Player.Distance = Player.FistPercent + 44;
                    Player.Shielding = Player.FistPercent + 48;
                    Player.Fishing = Player.FistPercent + 52;
                    Player.SlotHead = 0x616F88;
                    Player.SlotNeck = Player.SlotHead + 12;
                    Player.SlotBackpack = Player.SlotHead + 24;
                    Player.SlotArmor = Player.SlotHead + 36;
                    Player.SlotRight = Player.SlotHead + 48;
                    Player.SlotLeft = Player.SlotHead + 60;
                    Player.SlotLegs = Player.SlotHead + 72;
                    Player.SlotFeet = Player.SlotHead + 84;
                    Player.SlotRing = Player.SlotHead + 96;
                    Player.SlotAmmo = Player.SlotHead + 108;
                    Player.DistanceSlotCount = 4;
                    Player.GoToX = 0x60EB10;
                    Player.GoToY = Player.GoToX - 4;
                    Player.GoToZ = Player.GoToX - 8;
                    Player.RedSquare = 0x60EA9C;
                    Player.GreenSquare = Player.RedSquare - 4;
                    Player.WhiteSquare = Player.GreenSquare - 8;
                    Player.AccessN = 0x766DF4;
                    Player.AccessS = 0x766DC4;
                    Player.TargetId = 0x60EA9C;
                    Player.TargetType = 0x60EA9F;
                    Player.TargetBattlelistId = 0x60EA94;
                    Player.TargetBattlelistType = 0x60EA97;

                    Vip.Start = 0x60C7F0;
                    Vip.End = 0x60C840;
                    Vip.StepPlayers = 0x2C;
                    Vip.MaxPlayers = 100;
                    Vip.DistanceId = 0;
                    Vip.DistanceName = 4;
                    Vip.DistanceStatus = 34;
                    Vip.DistanceIcon = 40;
                    break;

            #endregion

                default:
                    throw new Exceptions.VersionNotSupportedException("Tibia version " + CurrentVersionString + " is not supported by TibiaAPI.");
            }

        }

    }
}
